package com.tsmti.core.util;

import org.springframework.context.MessageSource;

/**
 * @Package：com.tsmti.core.util
 * @Class：MessageUtils
 * @Description： TODO
 * @Author：zcw
 * @Date：Created in 2018/2/28 10:41
 * @Company:
 * @Version：
 * @Modified By:
 */
public class MessageUtils {
    private static MessageSource messageSource;

    /**
     * 根据消息键和参数 获取消息 委托给spring messageSource
     *
     * @param code
     *            消息键
     * @param args
     *            参数
     * @return
     */
    public static String getMessage(String code, Object... args) {
        if (messageSource == null) {
            messageSource = SpringContextUtils.getBean(MessageSource.class);
        }
        return messageSource.getMessage(code, args, null);
    }

    /**
     * 根据消息键和参数 获取消息 委托给spring messageSource
     *
     * @param code
     *            消息键
     * @param args
     *            参数
     * @return
     */
    public static String getMessage(String code, String defaultMessage, Object... args) {
        if (messageSource == null) {
            messageSource = SpringContextUtils.getBean(MessageSource.class);
        }
        return messageSource.getMessage(code, args, defaultMessage, null);
    }

    /**
     * 根据消息键和参数 获取消息 委托给spring messageSource
     *
     * @param code
     *            消息键
     * @param args
     *            参数
     * @return
     */
    public static String getMessageOrSelf(String code, Object... args) {
        String message = "";
        try {
            message = getMessage(code, args, code);
        } catch (Exception e) {
            message = code;
        }
        return message;
    }
}
